package Capa_Presentacion;

import java.awt.event.ActionEvent;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.faces.context.FacesContext;
import javax.faces.event.ValueChangeEvent;

import Capa_Datos.CD_Curso;
import Capa_Datos.CD_Detalleps;
import Capa_Datos.CD_Eap;
import Capa_Datos.CD_Profesor;
import Capa_Datos.CD_Software;
import Capa_Negocio.CN_ImplHistorialServicio;
import Capa_Negocio.CN_ImplSoftServicio;

public class CP_Historial_sw_doc {
	CD_Eap selectedEap;
	List<CD_Eap> lista_eap;
	CN_ImplHistorialServicio cn_historial;
	CN_ImplSoftServicio cn_software;
	List<CD_Curso> listaCursos;
	CD_Curso selectedCurso;
	int valor, valor2, valor3, valor4;
	List<CD_Profesor>listaDocentes;
	List<CD_Profesor>listaDocentesGeneral;
	List<CD_Detalleps>listaSoftware;
	List<CD_Software>listaNuevos;
	CD_Detalleps selectedSoftware;
	CD_Software selectedNuevo;
	int numero_historial;
	
	
	public int getValor4() {
		return valor4;
	}

	public void setValor4(int valor4) {
		this.valor4 = valor4;
	}

	public int getNumero_historial() {
		return numero_historial;
	}

	public void setNumero_historial(int numero_historial) {
		this.numero_historial = numero_historial;
	}

	public List<CD_Software> getListaNuevos() {
		return listaNuevos;
	}

	public void setListaNuevos(List<CD_Software> listaNuevos) {
		this.listaNuevos = listaNuevos;
	}

	public List<CD_Profesor> getListaDocentesGeneral() {
		return listaDocentesGeneral;
	}

	public void setListaDocentesGeneral(List<CD_Profesor> listaDocentesGeneral) {
		this.listaDocentesGeneral = listaDocentesGeneral;
	}

	public CD_Software getSelectedNuevo() {
		return selectedNuevo;
	}

	public void setSelectedNuevo(CD_Software selectedNuevo) {
		this.selectedNuevo = selectedNuevo;
	}

	public List<CD_Detalleps> getListaSoftware() {
		return listaSoftware;
	}

	public void setListaSoftware(List<CD_Detalleps> listaSoftware) {
		this.listaSoftware = listaSoftware;
	}

	public CD_Detalleps getSelectedSoftware() {
		return selectedSoftware;
	}

	public void setSelectedSoftware(CD_Detalleps selectedSoftware) {
		this.selectedSoftware = selectedSoftware;
	}

	public int getValor3() {
		return valor3;
	}

	public void setValor3(int valor3) {
		this.valor3 = valor3;
	}

	public List<CD_Profesor> getListaDocentes() {
		return listaDocentes;
	}

	public void setListaDocentes(List<CD_Profesor> listaDocentes) {
		this.listaDocentes = listaDocentes;
	}

	public int getValor() {
		return valor;
	}

	public int getValor2() {
		return valor2;
	}

	public void setValor2(int valor2) {
		this.valor2 = valor2;
	}

	public void setValor(int valor) {
		this.valor = valor;
	}

	public CP_Historial_sw_doc(){
		cn_software = new CN_ImplSoftServicio();
		 selectedEap= new CD_Eap();
		 selectedCurso = new CD_Curso();
		 selectedNuevo = new CD_Software();
		 selectedSoftware = new CD_Detalleps();
		 lista_eap= new ArrayList<CD_Eap>();
		 listaCursos= new ArrayList<CD_Curso>();
		 cn_historial= new CN_ImplHistorialServicio();
		 lista_eap= cn_historial.getListaEap();
		 listaDocentes = new ArrayList<CD_Profesor>();
		 listaSoftware = new ArrayList<CD_Detalleps>();
		 listaNuevos = new ArrayList<CD_Software>();
		 setListaNuevos(cn_software.getListaSw());
		 listaDocentesGeneral= getDocentesGeneral();
		// setListaCursos(cn_historial.obtenerListaCursos(valor));
		//setValor(getValor());
	}
	
	public CN_ImplHistorialServicio getCn_historial() {
		return cn_historial;
	}

	public void setCn_historial(CN_ImplHistorialServicio cn_historial) {
		this.cn_historial = cn_historial;
	}

	public List<CD_Curso> getListaCursos() {
		return listaCursos;
	}

	public void setListaCursos(List<CD_Curso> listaCursos) {
		this.listaCursos = listaCursos;
	}

	public CD_Curso getSelectedCurso() {
		return selectedCurso;
	}

	public void setSelectedCurso(CD_Curso selectedCurso) {
		this.selectedCurso = selectedCurso;
	}

	public void setLista_eap(List<CD_Eap> lista_eap) {
		this.lista_eap = lista_eap;
	}

	public CD_Eap getSelectedEap() {
		return selectedEap;
	}
	public void setSelectedEap(CD_Eap selectedEap) {
		this.selectedEap = selectedEap;
	}
	public List<CD_Eap> getLista_eap() {
		return lista_eap;
	}
	public void setLista_eap(ArrayList<CD_Eap> lista_eap) {
		this.lista_eap = lista_eap;
	} 
	
	public void cambioCursos(ValueChangeEvent event){
	
		//setListaCursos(cn_historial.obtenerListaCursos(valor));
		setListaCursos(cn_historial.obtenerListaCursos((Integer) event.getNewValue()));
		
	//	FacesContext.getCurrentInstance().renderResponse();
	}
	
	public void cambioDocentes(ValueChangeEvent event){
		
		//setListaCursos(cn_historial.obtenerListaCursos(valor));
	//	setListaDocentes((cn_historial.obtenerListaDocentes((Integer) event.getNewValue())));
		setListaDocentes((cn_historial.obtenerListaDocentes(valor2)));
	//	FacesContext.getCurrentInstance().renderResponse();
	}
	
	public void consulta_historial(){
		setNumero_historial(cn_historial.getNumeroHistorial(valor2, String.valueOf(valor3)));
		setListaSoftware(cn_historial.obtenerListaSoftware(getNumero_historial()));		
	}
	
	public void eliminar_sw(){
		cn_historial.eliminar_sw(selectedSoftware);		
	}
	
	public void agregar_sw(){
		setListaNuevos(cn_software.getListaSw());
		cn_historial.agregar_sw(getNumero_historial(),selectedNuevo);
	}
	public void eliminar_historial(){
		cn_historial.eliminarHistorial(getNumero_historial());
	}
	
	public void crearHistorial(){		
		cn_historial.crearHistorial(valor2, String.valueOf(valor4));
	}
	
	public List<CD_Profesor> getDocentesGeneral(){
		return cn_historial.getDocentesGeneral();
	}
	
	public void registrarVista(){
		FacesContext contex = FacesContext.getCurrentInstance(); 		 
 		try { 	
 			inicializa();
			contex.getExternalContext().redirect( "/ProyLabo/faces/view/RegistroHistorial.xhtml" );
		} catch (IOException e) {
			
			e.printStackTrace();
		}
	}
	public void consultarVista(){
		FacesContext contex = FacesContext.getCurrentInstance(); 		 
 		try { 		
 			inicializa();
			contex.getExternalContext().redirect( "/ProyLabo/faces/view/Consulta_historial.xhtml" );
		} catch (IOException e) {
			
			e.printStackTrace();
		}
	}
	
	public void inicializa(){
		
		 selectedEap= new CD_Eap();
		 selectedCurso = new CD_Curso();
		 selectedNuevo = new CD_Software();
		 selectedSoftware = new CD_Detalleps();
		
	}
	
}
